import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Nine<T> {

	public static void main(String[] args) {
		Integer[] list0=new Integer[8];
		list0[0]=3;list0[1]=4;list0[2]=-6;list0[3]=2;list0[4]=5;list0[5]=1;list0[6]=-10;list0[7]=0;
		SinglyLinkedList1<Integer> a=new SinglyLinkedList1<Integer>(list0);
		Integer[] list1=new Integer[8];
		list1[0]=7;list1[1]=9;list1[2]=-4;list1[3]=4;list1[4]=-2;list1[5]=2;list1[6]=9;list1[7]=0;
		SinglyLinkedList1<Integer> b=new SinglyLinkedList1<Integer>(list1);
		new Nine().add(a, b);

	}
	
	public  void add(SinglyLinkedList1 a,SinglyLinkedList1 b) {
	          
		NDone<T> p=a.head;
		NDone<T> q=b.head;
		while(q.next!=null) {
			p=a.head;
			
			NDone<T> node=q.next;
			boolean isHave=false;
			while(p.next!=null) {
				if(p.next.zdata==node.zdata) 
				{
					isHave=true;
				    break;
				 }
				p=p.next;
			}
			if(isHave==false) {
				a.add(node.xdata, node.zdata);
			}
			else {
				p.next.xdata=p.next.xdata+node.xdata;
				
			}
			
			q=q.next;
		}
		
		a.showList();
		
	}
   
 
}
class SinglyLinkedList1<T extends Comparable> {
	
	NDone<T> head = new NDone<T>();
	int size=0;
	
	
	public SinglyLinkedList1(T[] element) {
		
		List list=new ArrayList<T>();
		for(int i=0;i<element.length;i++) {
			list.add(element[i]);
		}
		
		NDone<T> p=this.head;
		int j=0;
		for(int i=0;i<element.length/2;i++) {
			Integer a=(Integer) list.get(j);
			j=j+1;
			Integer b=(Integer) list.get(j);
			j=j+1;
			NDone<T>node= new NDone<T>(a,b,null);
		    p.next=node;
		    p=p.next;
		    size++;
		}
	}
	

	


	
	
	
	public boolean remove(int i) {
		if(i>this.size||i<0)
			return false;
		NDone<T> p=this.head;
		for(int j=0;j<i;j++) {
			p=p.next;
		}
		
		p.next=p.next.next;
		
		
		size--;
		
		return true;
	}
	
	public boolean add(T element,T elements2) {
		NDone<T> p=this.head;
		NDone<T> q=new NDone<T>((int)element,(int)elements2,null);
		while(p.next!=null&&p.next.zdata>(int)elements2) {
			p=p.next;
		}
		if(p.next==null) {
			p.next=q;
		}
		else {
		q.next=p.next;
		p.next=q;
		}
		return true;
	}
	
	public void showList() {
		NDone<T> p=this.head;
		while(p.next!=null) {
			System.out.print(p.next.xdata+" "+p.next.zdata+",");
			p=p.next;
		}
	}
	

	
	

	
		
	
	
}